<p>从Java API文档中：</p>
<blockquote>
    <code> Condition </code>将<code> Object </code>监视方法（<code> wait </code>，<code> notify </code>和<code> notifyAll </code>）分解为通过使用任意Lock实现将它们组合在一起，可以使每个对象具有多个等待集的效果。其中<code> Lock </code>代替了<code> synchronized </code>方法和语句的使用，而<code> Condition </code>代替了<code> Object </code>监视方法的使用。
</blockquote>
实现<code> Condition </code>接口的目的是获得对其更细微的<code> await </code>方法的访问。因此，在实现<code> Condition </code>接口的类上调用方法<code> Object.wait（...）</code>是不规范的。

<h2>不规范代码示例</h2>

<pre>
final Lock lock = new ReentrantLock();
final Condition notFull  = lock.newCondition();
...
notFull.wait();
</pre>

<h2>正确的的代码示例</h2>
<pre>
final Lock lock = new ReentrantLock();
final Condition notFull  = lock.newCondition();
...
notFull.await();
</pre>